package maxDistToClosest;

import java.util.ArrayList;
import java.util.List;

public class Solution {
    public int maxDistToClosest(int[] seats) {
//        List<Integer> list = new ArrayList<>();
//        for (int i = 0; i < seats.length; i++) {
//            if(seats[i] == 1) {
//                list.add(i); // (i-j)/2
//            }
//        } // 找到所有的人的位置
//        int max = list.get(0) - 0;
//        for (int i = 2; i < list.size(); i++) {
//            max = Math.max((list.get(i) - list.get(i-1))/2,max);
//        }
//        return Math.max((seats.length-1)-list.get(list.size()-1),max);

        // 双指针解法
        int l = 0;
        while (l<seats.length&&seats[l] == 0) {
            l++;
        }
        int res = l;
        int r = l+1;
        while (l<seats.length&&r<seats.length) {
            if(seats[r] == 0) {
                r++;
            } else {
                res = Math.max(res,(r-l)/2);
                l = r;
                r++;
            }
        }
        return Math.max(res,r-l-1);
    }
}
